package com.zjmzxfzhl.modules.app.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zjmzxfzhl.common.core.base.BaseService;
import com.zjmzxfzhl.modules.app.entity.AppProd;
import com.zjmzxfzhl.modules.app.entity.AppProj;
import com.zjmzxfzhl.modules.app.form.AppProdVo;

import java.util.Map;

/**
 * Service
 * 
 * @author 张森荣
 */
public interface AppProdService extends BaseService<AppProd> {
    /**
     * 分页查询
     * 
     * @param page
     * @param appProdVo
     * @return
     */
    IPage<AppProdVo> list(IPage<AppProdVo> page, AppProdVo appProdVo);

    /**
     * 新增产品
     *
     * @param appProd
     * @return
     */
    boolean saveAppProd(AppProd appProd);

    /**
     * 根据id查询
     *
     * @return
     */
    AppProdVo queryById(String id);

    /**
     * 修改产品
     *
     * @param appProd
     * @return
     */
    boolean updateAppProd(AppProd appProd);

    /**
     * 变更产品状态（导入期）
     *
     * @return
     */
    boolean introduction(String prodId);
    /**
     * 变更产品状态（成长期）
     *
     * @return
     */
    boolean anagen(String prodId);
    /**
     * 变更产品状态（成熟期）
     *
     * @return
     */
    boolean maturation(String prodId);
    /**
     * 变更产品状态（哀退期）
     *
     * @return
     */
    boolean catagen(String prodId);
    /**
     * 变更产品状态（已关闭）
     *
     * @return
     */
    boolean close(String prodId);

    /**
     * 统计产品概括
     *
     * @return
     */
    Map<String, Object> summarize(String prodId);

    /**
     * 批量删除
     *
     * @return
     */
    boolean delByIds(String ids);
}
